Computing devices which allow a user to enter data with a stylus are becoming more and more popular. This type of computing device, which includes personal digital assistants and tablet personal computers, often allow a user to enter data by writing on a surface with a stylus to create electronic ink. The user moves the pen or stylus over a digitizing surface, and an underlying ink-enabled software platform converts the physical movement of the pen into ink strokes and eventually into groupings of handwritten words or drawings. Electronic ink is particularly convenient for users who cannot type quickly with a keyboard, or when the use of a keyboard is impractical.
As the use of computers in both the workplace and home has increased, so has the need to develop user friendly computers. One type of computer that creates a user friendly environment for interaction purposes is one with a digitizer, such as a tablet type computer. A tablet style computer allows a user to interact with a computer as if writing on a piece of paper or other flat surface. The tablet style computer has introduced this concept of a pen as an input device and ink as a native data type in an operating system platform. Beyond pen based systems, touch based input, e.g., using a user's finger across a digitizer, on the same platform is a logical next step.
As a user touches across the display surface of a digitizer with her finger, digital ink is captured for where the user has positioned her finger. Application programs, such as OneNote by Microsoft® Corporation of Redmond, Wash., run on an operating system. An application program takes the input strokes received from the user touching on the display surface and processes the data to perform some function. For example, the input strokes may be used by an application program to produce letters and words handwritten by the user.
While touch enabled platforms and corresponding touch aware software applications and controls are becoming more common, it is difficult to efficiently test these platforms and such touch aware applications and controls. Efficient testing is challenging because touching is an inherently manual process, and the features of a touch input are highly dependent on the individual touching the touch input. After all, a person has to move her finger around in order to drive any touch aware applications.
For example, a software developer may want to test how well a soft keyboard of a tablet input panel or “TIP” (i.e., a stand-alone user interface for receiving pointer inputs, may be through touch, converting the input into text and then inserting the text into a target application) operates with an application. In order to test the TIP, the developer would need to (1) launch the application, such as Notepad by Microsoft® Corporation of Redmond, Wash., (2) launch the tablet input panel, (3) switch to a control, soft keyboard, that will accept input, (4) touch in the desired text input, such as “Hello World,” and (5), verify that the proper text was accurately inserted into the application.
Each of steps (1)-(3) and (5) are straightforward, and testing automation processes are well known to execute each of these steps. Step (4), however, can be time consuming if manually performed, especially if the software developer wishes to execute multiple (e.g., more than 1,000) tests in a test pass with multiple runs of the test pass. Further, if the tester wished to run different variations of the same test, then the user would need to repeat step (4) even more often.
In order to make the testing of touch enabled platforms and touch aware applications and controls more efficient and reproducible, it would be desirable to automate the process of creating touch input data. In this manner, the same touch input data can be created for testing once and used again and again. One such technique for consistently recreating touch input data is to have a test engineer manually enter touch data into the touch enabled platform. While this approach will consistently recreate touch input data, it is relatively slow, difficult to employ on a large scale, and resource intensive.